package edu.unf.cen6940.dao;

import edu.unf.cen6940.domain.Category;

import java.util.Set;

import org.skyway.spring.util.dao.JpaDao;

import org.springframework.dao.DataAccessException;

/**
 * DAO to manage Category entities.
 * 
 */
public interface CategoryDAO extends JpaDao<Category> {

	/**
	 * JPQL Query - findAllCategorys
	 *
	 */
	public Set<Category> findAllCategorys() throws DataAccessException;

	/**
	 * JPQL Query - findAllCategorys
	 *
	 */
	public Set<Category> findAllCategorys(int startResult, int maxRows) throws DataAccessException;

	public Set<Category> findRandomCategorys() throws DataAccessException;
	public Set<Category> findRandomCategorys(int startResult, int maxRows) throws DataAccessException;
	/**
	 * JPQL Query - findCategoryByPrimaryKey
	 *
	 */
	public Category findCategoryByPrimaryKey(Integer categoryId) throws DataAccessException;

	/**
	 * JPQL Query - findCategoryByPrimaryKey
	 *
	 */
	public Category findCategoryByPrimaryKey(Integer categoryId, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findCategoryByCategoryId
	 *
	 */
	public Category findCategoryByCategoryId(Integer categoryId_1) throws DataAccessException;

	/**
	 * JPQL Query - findCategoryByCategoryId
	 *
	 */
	public Category findCategoryByCategoryId(Integer categoryId_1, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findCategoryByCategoryDescriptionContaining
	 *
	 */
	public Set<Category> findCategoryByCategoryDescriptionContaining(String categoryDescription) throws DataAccessException;

	/**
	 * JPQL Query - findCategoryByCategoryDescriptionContaining
	 *
	 */
	public Set<Category> findCategoryByCategoryDescriptionContaining(String categoryDescription, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findCategoryByCategoryDescription
	 *
	 */
	public Set<Category> findCategoryByCategoryDescription(String categoryDescription_1) throws DataAccessException;

	/**
	 * JPQL Query - findCategoryByCategoryDescription
	 *
	 */
	public Set<Category> findCategoryByCategoryDescription(String categoryDescription_1, int startResult, int maxRows) throws DataAccessException;
	
	/**
	 * Search By Term
	 * */
	public Set<Category> searchByTerm(String term) throws DataAccessException;

}